package com.telecomyt.jwportal.activity;

import android.content.Context;
import android.content.Intent;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.ninetripods.sydialoglib.SYDialog;
import com.telecomyt.jwportal.R;
import com.telecomyt.jwportal.base.BaseActivity;
import com.telecomyt.jwportal.base.BasePresenter;
import com.telecomyt.jwportal.dialog.SearchDialog;
import com.telecomyt.jwportal.utils.ToastUtils;

import butterknife.BindView;
import butterknife.OnClick;

public class DialogActivity extends BaseActivity {

    @BindView(R.id.mButton4)
    Button mButton4;
    @BindView(R.id.mButton5)
    Button mButton5;
    @BindView(R.id.mButton6)
    Button mButton6;
    @BindView(R.id.mButton7)
    Button mButton7;
    @BindView(R.id.mButton8)
    Button mButton8;
    SearchDialog searchDialog;

    public static void start(Context context) {
        Intent starter = new Intent(context, DialogActivity.class);
        context.startActivity(starter);
    }

    @Override
    protected int getLayoutId() {
        return R.layout.activity_dialog;
    }

    @Override
    protected void initView() {

    }

    @Override
    protected void initData() {

    }

    @Override
    protected BasePresenter creatPresenter() {
        return null;
    }


    @OnClick({R.id.mButton4, R.id.mButton5, R.id.mButton6, R.id.mButton7, R.id.mButton8})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.mButton4:
                //                new DialogUtils(this, 1, "是否确认撤回上报内容?", "否", "是", new DialogUtils.ConfirmListener() {
//                    @Override
//                    public void onConfirm() {
//                        ToastUtils.showShort("是");
//
//                    }
//        }).show();
                new SYDialog.Builder(this)
                        .setDialogView(R.layout.layout_dialog_text)//设置dialog布局
                        .setAnimStyle(R.style.DialogStyle)//设置动画 默认没有动画
                        .setScreenWidthP(0.85f) //设置屏幕宽度比例 0.0f-1.0f
                        .setGravity(Gravity.CENTER)//设置Gravity
                        .setWindowBackgroundP(0.2f)//设置背景透明度 0.0f-1.0f 1.0f完全不透明
                        .setCancelable(true)//设置是否屏蔽物理返回键 true不屏蔽  false屏蔽
                        .setCancelableOutSide(true)//设置dialog外点击是否可以让dialog消失
                        .setBuildChildListener((dialog, view1, layoutRes) -> {
                            TextView mTvMessage = view1.findViewById(R.id.mTvMessage);
                            mTvMessage.setText("标题");
                            view1.findViewById(R.id.mTvCancel).setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View view) {
                                    dialog.dismiss();
                                }
                            });
                            view1.findViewById(R.id.mTvConfirm).setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View view) {
                                    ToastUtils.showShort("是");
                                    dialog.dismiss();
                                }
                            });
                        }).show();
                break;
            case R.id.mButton5://分享dialog
//                new DialogUtils(this, 2, "张三", "", "", "取消", "发送", new DialogUtils.ConfirmListener() {
//                    @Override
//                    public void onConfirm() {
//                        ToastUtils.showShort("发送");
//                    }
//                }).show();
                new SYDialog.Builder(this)
                        .setDialogView(R.layout.layout_dialog_share)//设置dialog布局
                        .setAnimStyle(R.style.DialogStyle)//设置动画 默认没有动画
                        .setScreenWidthP(0.85f) //设置屏幕宽度比例 0.0f-1.0f
                        .setGravity(Gravity.CENTER)//设置Gravity
                        .setWindowBackgroundP(0.2f)//设置背景透明度 0.0f-1.0f 1.0f完全不透明
                        .setCancelable(true)//设置是否屏蔽物理返回键 true不屏蔽  false屏蔽
                        .setCancelableOutSide(true)//设置dialog外点击是否可以让dialog消失
                        .setBuildChildListener((dialog, view1, layoutRes) -> {
                            ImageView mIvShareHead = (ImageView) findViewById(R.id.mIvShareHead);
                            ImageView mIvShareContent = (ImageView) findViewById(R.id.mIvShareContent);
                            TextView mTvShareName = (TextView) findViewById(R.id.mTvShareName);
                            view1.findViewById(R.id.mTvCancel).setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View view) {
                                    dialog.dismiss();
                                }
                            });
                            view1.findViewById(R.id.mTvConfirm).setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View view) {
                                    ToastUtils.showShort("分享");
                                    dialog.dismiss();
                                }
                            });

                        }).show();
                break;
            case R.id.mButton6://输入框dialog
//                new DialogUtils(this, 3, "取消", "确定", new DialogUtils.ModificationListener() {
//                    @Override
//                    public void onConfirmName(String name) {
//                        ToastUtils.showShort(name);
//
//                    }
//                }).show();
                new SYDialog.Builder(this)
                        .setDialogView(R.layout.layout_dialog_edit)//设置dialog布局
                        .setAnimStyle(R.style.DialogStyle)//设置动画 默认没有动画
                        .setScreenWidthP(0.85f) //设置屏幕宽度比例 0.0f-1.0f
                        .setGravity(Gravity.CENTER)//设置Gravity
                        .setWindowBackgroundP(0.2f)//设置背景透明度 0.0f-1.0f 1.0f完全不透明
                        .setCancelable(true)//设置是否屏蔽物理返回键 true不屏蔽  false屏蔽
                        .setCancelableOutSide(true)//设置dialog外点击是否可以让dialog消失
                        .setBuildChildListener((dialog, view1, layoutRes) -> {
                            EditText mEditText = view1.findViewById(R.id.mEditText);
                            view1.findViewById(R.id.mTvCancel).setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View view) {
                                    dialog.dismiss();
                                }
                            });
                            view1.findViewById(R.id.mTvConfirm).setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View view) {
                                    ToastUtils.showShort(mEditText.getText().toString().trim());
                                    dialog.dismiss();
                                }
                            });

                        }).show();
                break;
            case R.id.mButton7://一张大图dialog
//                new DialogUtils(this, 4, "");
                new SYDialog.Builder(this)
                        .setDialogView(R.layout.layout_dialog_image)//设置dialog布局
                        .setAnimStyle(R.style.DialogStyle)//设置动画 默认没有动画
                        .setScreenWidthP(0.85f) //设置屏幕宽度比例 0.0f-1.0f
                        .setGravity(Gravity.CENTER)//设置Gravity
                        .setWindowBackgroundP(0.2f)//设置背景透明度 0.0f-1.0f 1.0f完全不透明
                        .setCancelable(true)//设置是否屏蔽物理返回键 true不屏蔽  false屏蔽
                        .setCancelableOutSide(true)//设置dialog外点击是否可以让dialog消失
                        .setBuildChildListener((dialog, view1, layoutRes) -> {
                            ImageView mImageView = view1.findViewById(R.id.mImageView);
//                            GlideUtils.load(getContext(), imagePath, mImageView);//加载头像
                            view1.findViewById(R.id.mLlCancle).setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View view) {
                                    dialog.dismiss();
                                }
                            });

                        }).show();
                break;
            case R.id.mButton8://呼叫dialog
                new SYDialog.Builder(this)
                        .setDialogView(R.layout.layout_dialog_call)//设置dialog布局
                        .setAnimStyle(R.style.DialogStyle)//设置动画 默认没有动画
                        .setScreenWidthP(0.85f) //设置屏幕宽度比例 0.0f-1.0f
                        .setGravity(Gravity.CENTER)//设置Gravity
                        .setWindowBackgroundP(0.2f)//设置背景透明度 0.0f-1.0f 1.0f完全不透明
                        .setCancelable(true)//设置是否屏蔽物理返回键 true不屏蔽  false屏蔽
                        .setCancelableOutSide(true)//设置dialog外点击是否可以让dialog消失
                        .setBuildChildListener((dialog, view1, layoutRes) -> {
                            TextView mTvTitle = view1.findViewById(R.id.mTvTitle);
                            mTvTitle.setText("正在呼叫某某某,请稍后...");
                            TextView mTvHangUp = view1.findViewById(R.id.mTvHangUp);
                            mTvHangUp.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View view1) {
                                    dialog.dismiss();
                                }
                            });
                            ImageView mImageView = findViewById(R.id.mImageView);
                        }).show();
//                searchDialog = new SearchDialog(this, new SearchDialog.ClickListener() {
//                    @Override
//                    public void onRise(LinearLayout mLinearLayout) {
//                        setDialogHeight(true, searchDialog);
//
//                    }
//
//                    @Override
//                    public void down(LinearLayout mLinearLayout) {
//                        setDialogHeight(false, searchDialog);
//                    }
//                });
//                searchDialog.show();

                break;
        }
    }

    /**
     * 设置 dialog的高度
     *
     * @param dialog
     */
    private void setDialogHeight(boolean isFlag, SearchDialog dialog) {
        WindowManager m = getWindowManager();
        Display display = m.getDefaultDisplay();
        WindowManager.LayoutParams p = dialog.getWindow().getAttributes();
        if (isFlag) {
            p.height = (int) (display.getHeight() * 0.9);
        } else {
            p.height = LinearLayout.LayoutParams.WRAP_CONTENT;
        }
        dialog.getWindow().setAttributes(p);
    }

}